
# Loading additional proc with user specified bodies to compute parameter values.
source [file join [file dirname [file dirname [info script]]] gui/axi_lvds_v1_0.gtcl]

# Definitional proc to organize widgets for parameters.
proc init_gui { IPINST } {
  ipgui::add_param $IPINST -name "Component_Name"
  #Adding Page
  set Page_0 [ipgui::add_page $IPINST -name "Page 0"]
  ipgui::add_param $IPINST -name "C_S00_AXI_BASEADDR" -parent ${Page_0}
  ipgui::add_param $IPINST -name "C_S00_AXI_HIGHADDR" -parent ${Page_0}
  #Adding Group
  set featrue [ipgui::add_group $IPINST -name "featrue" -parent ${Page_0}]
  ipgui::add_param $IPINST -name "CLK_DESKEW" -parent ${featrue}
  ipgui::add_param $IPINST -name "USE_TX_CLKSEL" -parent ${featrue}
  ipgui::add_param $IPINST -name "USE_MCLK" -parent ${featrue}
  ipgui::add_param $IPINST -name "IODELAY_ENABLE_RX" -parent ${featrue}
  ipgui::add_param $IPINST -name "IODELAY_ENABLE" -parent ${featrue}



}

proc update_PARAM_VALUE.DELAY_REFCLK_FREQUENCY { PARAM_VALUE.DELAY_REFCLK_FREQUENCY PARAM_VALUE.IODELAY_ENABLE PARAM_VALUE.IODELAY_ENABLE_RX } {
	# Procedure called to update DELAY_REFCLK_FREQUENCY when any of the dependent parameters in the arguments change
	
	set DELAY_REFCLK_FREQUENCY ${PARAM_VALUE.DELAY_REFCLK_FREQUENCY}
	set IODELAY_ENABLE ${PARAM_VALUE.IODELAY_ENABLE}
	set IODELAY_ENABLE_RX ${PARAM_VALUE.IODELAY_ENABLE_RX}
	set values(IODELAY_ENABLE) [get_property value $IODELAY_ENABLE]
	set values(IODELAY_ENABLE_RX) [get_property value $IODELAY_ENABLE_RX]
	if { [gen_USERPARAMETER_DELAY_REFCLK_FREQUENCY_ENABLEMENT $values(IODELAY_ENABLE) $values(IODELAY_ENABLE_RX)] } {
		set_property enabled true $DELAY_REFCLK_FREQUENCY
	} else {
		set_property enabled false $DELAY_REFCLK_FREQUENCY
	}
}

proc validate_PARAM_VALUE.DELAY_REFCLK_FREQUENCY { PARAM_VALUE.DELAY_REFCLK_FREQUENCY } {
	# Procedure called to validate DELAY_REFCLK_FREQUENCY
	return true
}

proc update_PARAM_VALUE.CLK_DESKEW { PARAM_VALUE.CLK_DESKEW } {
	# Procedure called to update CLK_DESKEW when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.CLK_DESKEW { PARAM_VALUE.CLK_DESKEW } {
	# Procedure called to validate CLK_DESKEW
	return true
}

proc update_PARAM_VALUE.C_S_AXI_ADDR_WIDTH { PARAM_VALUE.C_S_AXI_ADDR_WIDTH } {
	# Procedure called to update C_S_AXI_ADDR_WIDTH when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.C_S_AXI_ADDR_WIDTH { PARAM_VALUE.C_S_AXI_ADDR_WIDTH } {
	# Procedure called to validate C_S_AXI_ADDR_WIDTH
	return true
}

proc update_PARAM_VALUE.FPGA_TECHNOLOGY { PARAM_VALUE.FPGA_TECHNOLOGY } {
	# Procedure called to update FPGA_TECHNOLOGY when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.FPGA_TECHNOLOGY { PARAM_VALUE.FPGA_TECHNOLOGY } {
	# Procedure called to validate FPGA_TECHNOLOGY
	return true
}

proc update_PARAM_VALUE.IODELAY_CTRL { PARAM_VALUE.IODELAY_CTRL } {
	# Procedure called to update IODELAY_CTRL when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.IODELAY_CTRL { PARAM_VALUE.IODELAY_CTRL } {
	# Procedure called to validate IODELAY_CTRL
	return true
}

proc update_PARAM_VALUE.IODELAY_ENABLE { PARAM_VALUE.IODELAY_ENABLE } {
	# Procedure called to update IODELAY_ENABLE when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.IODELAY_ENABLE { PARAM_VALUE.IODELAY_ENABLE } {
	# Procedure called to validate IODELAY_ENABLE
	return true
}

proc update_PARAM_VALUE.IODELAY_ENABLE_RX { PARAM_VALUE.IODELAY_ENABLE_RX } {
	# Procedure called to update IODELAY_ENABLE_RX when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.IODELAY_ENABLE_RX { PARAM_VALUE.IODELAY_ENABLE_RX } {
	# Procedure called to validate IODELAY_ENABLE_RX
	return true
}

proc update_PARAM_VALUE.IO_DELAY_GROUP { PARAM_VALUE.IO_DELAY_GROUP } {
	# Procedure called to update IO_DELAY_GROUP when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.IO_DELAY_GROUP { PARAM_VALUE.IO_DELAY_GROUP } {
	# Procedure called to validate IO_DELAY_GROUP
	return true
}

proc update_PARAM_VALUE.USE_CLK_DELAY { PARAM_VALUE.USE_CLK_DELAY } {
	# Procedure called to update USE_CLK_DELAY when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.USE_CLK_DELAY { PARAM_VALUE.USE_CLK_DELAY } {
	# Procedure called to validate USE_CLK_DELAY
	return true
}

proc update_PARAM_VALUE.USE_MCLK { PARAM_VALUE.USE_MCLK } {
	# Procedure called to update USE_MCLK when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.USE_MCLK { PARAM_VALUE.USE_MCLK } {
	# Procedure called to validate USE_MCLK
	return true
}

proc update_PARAM_VALUE.USE_TX_CLKSEL { PARAM_VALUE.USE_TX_CLKSEL } {
	# Procedure called to update USE_TX_CLKSEL when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.USE_TX_CLKSEL { PARAM_VALUE.USE_TX_CLKSEL } {
	# Procedure called to validate USE_TX_CLKSEL
	return true
}

proc update_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } {
	# Procedure called to update C_S00_AXI_BASEADDR when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } {
	# Procedure called to validate C_S00_AXI_BASEADDR
	return true
}

proc update_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } {
	# Procedure called to update C_S00_AXI_HIGHADDR when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } {
	# Procedure called to validate C_S00_AXI_HIGHADDR
	return true
}


proc update_MODELPARAM_VALUE.FPGA_TECHNOLOGY { MODELPARAM_VALUE.FPGA_TECHNOLOGY PARAM_VALUE.FPGA_TECHNOLOGY } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.FPGA_TECHNOLOGY}] ${MODELPARAM_VALUE.FPGA_TECHNOLOGY}
}

proc update_MODELPARAM_VALUE.IODELAY_ENABLE { MODELPARAM_VALUE.IODELAY_ENABLE PARAM_VALUE.IODELAY_ENABLE } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.IODELAY_ENABLE}] ${MODELPARAM_VALUE.IODELAY_ENABLE}
}

proc update_MODELPARAM_VALUE.IODELAY_ENABLE_RX { MODELPARAM_VALUE.IODELAY_ENABLE_RX PARAM_VALUE.IODELAY_ENABLE_RX } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.IODELAY_ENABLE_RX}] ${MODELPARAM_VALUE.IODELAY_ENABLE_RX}
}

proc update_MODELPARAM_VALUE.IO_DELAY_GROUP { MODELPARAM_VALUE.IO_DELAY_GROUP PARAM_VALUE.IO_DELAY_GROUP } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.IO_DELAY_GROUP}] ${MODELPARAM_VALUE.IO_DELAY_GROUP}
}

proc update_MODELPARAM_VALUE.IODELAY_CTRL { MODELPARAM_VALUE.IODELAY_CTRL PARAM_VALUE.IODELAY_CTRL } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.IODELAY_CTRL}] ${MODELPARAM_VALUE.IODELAY_CTRL}
}

proc update_MODELPARAM_VALUE.CLK_DESKEW { MODELPARAM_VALUE.CLK_DESKEW PARAM_VALUE.CLK_DESKEW } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.CLK_DESKEW}] ${MODELPARAM_VALUE.CLK_DESKEW}
}

proc update_MODELPARAM_VALUE.USE_MCLK { MODELPARAM_VALUE.USE_MCLK PARAM_VALUE.USE_MCLK } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.USE_MCLK}] ${MODELPARAM_VALUE.USE_MCLK}
}

proc update_MODELPARAM_VALUE.USE_CLK_DELAY { MODELPARAM_VALUE.USE_CLK_DELAY PARAM_VALUE.USE_CLK_DELAY } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.USE_CLK_DELAY}] ${MODELPARAM_VALUE.USE_CLK_DELAY}
}

proc update_MODELPARAM_VALUE.DELAY_REFCLK_FREQUENCY { MODELPARAM_VALUE.DELAY_REFCLK_FREQUENCY PARAM_VALUE.DELAY_REFCLK_FREQUENCY } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.DELAY_REFCLK_FREQUENCY}] ${MODELPARAM_VALUE.DELAY_REFCLK_FREQUENCY}
}

proc update_MODELPARAM_VALUE.USE_TX_CLKSEL { MODELPARAM_VALUE.USE_TX_CLKSEL PARAM_VALUE.USE_TX_CLKSEL } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.USE_TX_CLKSEL}] ${MODELPARAM_VALUE.USE_TX_CLKSEL}
}

proc update_MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH { MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH PARAM_VALUE.C_S_AXI_ADDR_WIDTH } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.C_S_AXI_ADDR_WIDTH}] ${MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH}
}

